package daisy;

import java.io.IOException;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;

import org.w3c.dom.Document;
import org.w3c.dom.Element;

import org.xml.sax.SAXException;

public class EstruturaBase 
{
	protected Document dom;
	protected String nomeArquivo;
	
	public EstruturaBase()
	{
	}

	public void setNomeArquivo(String n)	{ nomeArquivo = n;		}
	public String getNomeArquivo()			{ return nomeArquivo; 	}

	public boolean parseFile( String url )
	{
		// Obtem a fábrica
		DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

		// Se fizer validação obriga o programa a estar conectado.
		dbf.setValidating(false);
		dbf.setNamespaceAware(false);
		dbf.setIgnoringComments(true);
		
		try 
		{
			// Usa a fábrica para obter uma instância de document builder
			DocumentBuilder db = dbf.newDocumentBuilder();
			
			// Faz o parsing usando o builder para obter uma representação DOM do arquivo XML
			dom = db.parse( url );
		}
		catch (ParserConfigurationException pce) 
		{
			pce.printStackTrace();
			return false;
		}
		catch (SAXException se) 
		{
			se.printStackTrace();
			return false;
		}
		catch (IOException ioe) 
		{
			ioe.printStackTrace();
			return false;
		}

		return true;
	}

	protected RegAudio extraiRegAudio( Element elem )
	{
		RegAudio novo;
		
		novo = new RegAudio();

		novo.setSrc( elem.getAttribute("src") );
		novo.setClipBegin( elem.getAttribute("clipBegin") );
		novo.setClipEnd( elem.getAttribute("clipEnd") );
		return novo;
	}
}
